/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

// 封装promise对象，每次封装都返回一个promise对象
function fn(value){
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(value + '')
    }, 10);
  })
}
// 创建一个promise实例，调用resolve方法修改promise的状态为fulfilled，由于是异步，需要使用resolve做处理异步；
  fn().then(() => {
    let a = 'hello ';
    return fn(a);
  })
  .then((value) => {
    let b = 'lagou ';
    return fn(value + b)
  })
  .then((value) => {
    let c = 'I ♥ U';
    return fn(value + c)
  }).then(value => {
    console.log(value)
  })
